﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using cash_desk_model.src.security;

namespace cash_desk
{
    public partial class ChangePasswordForm : Form
    {
        string CurrentUser;
        public ChangePasswordForm(string CurrentUser)
        {
            this.CurrentUser = CurrentUser;
            InitializeComponent();
        }

        private void OkBtn_Click(object sender, EventArgs e)
        {
            if (OldPassBox.Text.Length == 0)
            {
                MessageBox.Show("შეიყვანეთ ძველი პაროლი");
                OldPassBox.Focus();
                return;
            }
            if (NewPassBox.Text.Length == 0)
            {
                MessageBox.Show("შეიყვანეთ ახალი პაროლი");
                NewPassBox.Focus();
                return;
            }
            if (NewPassBox.Text.Length == 0)
            {
                MessageBox.Show("დაადასტურეთ ახალი პაროლი");
                ConfirmBox.Focus();
                return;
            }
            if(!Coder.verifyMd5Hash(OldPassBox.Text,SecurityService.GetPassword(CurrentUser)))
            {
                MessageBox.Show("ძველი პაროლი არასწორია");
                OldPassBox.Clear();
                OldPassBox.Focus();
                return;
            }
            if (NewPassBox.Text != ConfirmBox.Text)
            {
                MessageBox.Show("პაროლები არ ემთხვევა");
                NewPassBox.Clear();
                NewPassBox.Focus();
                ConfirmBox.Clear();
                return;
            }
            if (NewPassBox.Text == OldPassBox.Text)
            {
                MessageBox.Show("ძველი და ახალი პაროლები არ უნდა ემთხვეოდეს");
                NewPassBox.Clear();
                ConfirmBox.Clear();
                NewPassBox.Focus();
                return;
            }
            string newPass = Coder.getMd5Hash(NewPassBox.Text);
            try
            {
                SecurityService.SetPassword(CurrentUser, newPass);
                MessageBox.Show("პაროლი შეიცვალა წარმატებით");
                Hide();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void CancelBtn_Click(object sender, EventArgs e)
        {
            Hide();
        }
    }
}
